The present disclosure relates to the field of computers, and specifically to software. Still more specifically, the present disclosure relates to processing software service requests.
Extensible Markup Language (XML) has emerged as the de-facto standard for expressing self-describing data, particularly when requesting a service (e.g., software) from a service provider. XML documents are posted using underlying transport protocols such as HyperText Transfer Protocol (HTTP) and IBM's Websphere™ MQ to effect service invocations, generate events, and to exchange complex data types. Service Oriented Architecture Protocol (SOAP), built atop XML, provides a standard way of enabling Remote Procedure Calls (RPC), where services are programmatically invoked by consumers. Web Services, the corner-stone of Service Oriented Architecture (SOA), are enabled using a SOAP facade that is described in a Web Services Description Language (WSDL). While Web Services and XML take a collective leap forward in providing self-describing application endpoints (and thus virtualized services), the abstraction comes with a substantial performance penalty. SOAP-based interactions are inherently many times more costly (in terms of computational cost) than home-grown Remote Procedure Call (RPC) systems. Much of this is due to expensive XML parsing and SOAP object de-serialization, including the creation of in-memory objects that represent the XML-encoded data. Often, XML processing is redundant, such as when the same XML is checked for well-formedness and validity.